#ifndef ASTRONOMY_CONSTANTS_H
#define ASTRONOMY_CONSTANTS_H

#include <math.h>
#include <wchar.h>  // 宽字符支持

//=================================天文常数=========================================
//==================================================================================

// 地球赤道半径(千米)
#define cs_rEar 6378.1366

// 平均半径
#define cs_rEarA (0.99834 * cs_rEar)

// 地球极赤半径比
#define cs_ba 0.99664719

// 地球极赤半径比的平方
#define cs_ba2 (cs_ba * cs_ba)

// 天文单位长度(千米)
#define cs_AU 1.49597870691e8

// sin(太阳视差)
#define cs_sinP (cs_rEar / cs_AU)

// 太阳视差
#define cs_PI asin(cs_sinP)

// 光速(千米/秒)
#define cs_GS 299792.458

// 每天文单位的光行时间(儒略世纪)
#define cs_Agx (cs_AU / cs_GS / 86400 / 36525)

// 行星会合周期
#define cs_xxHH {116, 584, 780, 399, 378, 370, 367, 367}

// 行星名称（宽字符）
#define xxName {L"地球", L"水星", L"金星", L"火星", L"木星", L"土星", L"天王星", L"海王星", L"冥王星"}

// 每弧度的角秒数
#define rad (180 * 3600 / M_PI)

// 每弧度的度数
#define radd (180 / M_PI)

// 2π
#define pi2 (M_PI * 2)

// π/2
#define pi_2 (M_PI / 2)

// J2000 历元
#define J2000 2451545

// 月亮与地球的半径比(用于半影计算)
#define cs_k 0.2725076

// 月亮与地球的半径比(用于本影计算)
#define cs_k2 0.2722810

// 太阳与地球的半径比(对应959.64)
#define cs_k0 109.1222

// 用于月亮视半径计算
#define cs_sMoon (cs_k * cs_rEar * 1.0000036 * rad)

// 用于月亮视半径计算
#define cs_sMoon2 (cs_k2 * cs_rEar * 1.0000036 * rad)

// 用于太阳视半径计算
#define cs_sSun 959.64

#endif // ASTRONOMY_CONSTANTS_H